﻿#pragma once
#include "Iterator.hpp"
#include "concurrentqueue.h"

using namespace moodycamel;
namespace yzrilyzr_collection{
	template<typename E> ECLASS(ConcurrentLinkedQueue) {
			ConcurrentQueue<E>*q;
			ConcurrentLinkedQueue() {
				q=new ConcurrentQueue<E>();
			}
			~ConcurrentLinkedQueue() {
				delete q;
			}
			public:
			void add(E* e) {
				q->enqueue(e);
			}
			void clear() {
				throw -1;
			}
			bool isEmpty() {
				throw -1;
			}
			int32_t size() {
				throw -1;
			}
			Iterator<E>* iterator() {
				return nullptr;
			}};
}